/*++

Copyright (c) Microsoft Corporation. All rights reserved.

Module Name:

    Trace.h

Abstract:

    WPP tracing definitions.

Environment:

    Kernel-mode only.

--*/

//
// Tracing GUID - {EAD1EE75-4BFE-4E28-8AFA-E94B0A1BAF37}
//

#pragma once

#define WPP_CONTROL_GUIDS \
    WPP_DEFINE_CONTROL_GUID( \
        UcsiTraceGuid, (EAD1EE75,4BFE,4E28,8AFA,E94B0A1BAF37), \
        WPP_DEFINE_BIT(TRACE_FLAG_DRIVER) \
        WPP_DEFINE_BIT(TRACE_FLAG_FDO) \
        WPP_DEFINE_BIT(TRACE_FLAG_ACPI) \
        WPP_DEFINE_BIT(TRACE_FLAG_PPM) \
        WPP_DEFINE_BIT(TRACE_FLAG_UCMCALLBACKS) \
        WPP_DEFINE_BIT(TRACE_FLAG_UCMNOTIFICATIONS) \
        )

#define WPP_LEVEL_FLAGS_LOGGER(lvl, flags) \
    WPP_LEVEL_LOGGER(flags)

#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) \
    (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level >= lvl)

//
// begin_wpp config
//
// FUNC TRACE_ERROR{LEVEL=TRACE_LEVEL_ERROR}(FLAGS, MSG,...);
//
// FUNC TRACE_WARN{LEVEL=TRACE_LEVEL_WARNING}(FLAGS, MSG, ...);
//
// FUNC TRACE_INFO{LEVEL=TRACE_LEVEL_INFORMATION}(FLAGS, MSG, ...);
//
// FUNC TRACE_VERBOSE{LEVEL=TRACE_LEVEL_VERBOSE}(FLAGS, MSG, ...);
//
// FUNC TRACE_FUNC_ENTRY{LEVEL=TRACE_LEVEL_VERBOSE}(FLAGS, ...);
// USESUFFIX(TRACE_FUNC_ENTRY, "%!FUNC! Entry");
//
// FUNC TRACE_FUNC_EXIT{LEVEL=TRACE_LEVEL_VERBOSE}(FLAGS, ...);
// USESUFFIX(TRACE_FUNC_EXIT, "%!FUNC! Exit");
//
// CUSTOM_TYPE(UCSI_COMMAND, ItemEnum(_UCSI_COMMAND));
// CUSTOM_TYPE(UCSI_POWER_OPERATION_MODE, ItemEnum(_UCSI_POWER_OPERATION_MODE));
// CUSTOM_TYPE(UCSI_POWER_DIRECTION, ItemEnum(_UCSI_POWER_DIRECTION));
// CUSTOM_TYPE(UCSI_CONNECTOR_PARTNER_TYPE, ItemEnum(_UCSI_CONNECTOR_PARTNER_TYPE));
// CUSTOM_TYPE(UCSI_BATTERY_CHARGING_STATUS, ItemEnum(_UCSI_BATTERY_CHARGING_STATUS));
//
// end_wpp
//